cocoonフック調査~site_logo_urlの使い方と活用例
タナビーの高梨です。
WordPressのテーマ「Cocoon」には、テーマ改変なしでデザインや動作を拡張できる豊富なアクション・フィルターフックが用意されています。
分かる範囲で内容を調査したのでブログにまとめていこうと思います。
今回はヘッダ、フッタのサイトロゴに張られているリンクを変更できるフィルターフック
👉site_logo_url
です
フックの概要
| フック名 | 発火タイミング |
|---|---|
| site_logo_url | ヘッダ、フッタ描画時 |
発火条件
ヘッダ、フッタのロゴが表示されるタイミングで無条件に発火します
使いどころ
デフォルトでは、ロゴのリンク先は常に home_url()(=トップページ)になっていますが、このフックを使うと任意のURLに変更できます。
例えば以下のような使い方ができそうです。
・特定のページではロゴをトップではなく「サービス紹介ページ」にリンクさせたい
・マルチサイト構成で、サイトごとにロゴリンク先を変えたい
・一時的にキャンペーンページへ誘導したい
apply_filters呼び出し元のソースコード
lib/html-forms.php
$home_url = apply_filters('site_logo_url', $home_url);
tmp/mobile-logo-button.php
$home_url = apply_filters('site_logo_url', $home_url);
引数
$home_url:(string)リンク先URL
カスタマイズコード例
function customize_site_logo_url ( $home_url) {
if(~~条件~~) {
$home_url = 'https://google.com';
}
return $home_url;
}
add_filter('site_logo_url', 'customize_site_logo_url' );
このように条件分岐を加えることで、ページ単位・投稿タイプ単位など柔軟に切り替え可能です。
注意点
・$home_url はテーマ内部で直接使われるため、不正なURLや空文字を返すとリンク切れになります
・サイト全体で一律に変更したい場合は、is_front_page() などの条件分岐を外してシンプルに返す形でOKです
まとめ
・site_logo_url フックは、Cocoonのヘッダー・フッターのロゴリンク先を自由に変更できるフィルターです。
・特定のページや状況でトップ以外に誘導したいときなどに使うと便利です
・マルチサイト運用やキャンペーン導線設計などで役立つと思います